home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / rascal.arc / ATTRIB.RAS next >
Text File  |  1980-01-01  |  2KB  |  73 lines

  1. '   ATTRIB.RAS: Display all screen attributes, modified from
  2. '               Peter Norton's book.
  3.  
  4. INCLUDE SCREEN.INC
  5.  
  6. INCLUDE INPUT.INC
  7.  
  8. PROCEDURE MAIN
  9.     DO INITIALIZE.SCREEN
  10.     DO INITIALIZE.INPUT
  11.     L.TITLE$ = "ATTRIB - Display IBM PC Screen Attributes"
  12.     R.TITLE$ = "Rascal version 1.05"
  13.     DO SET.TITLES
  14.     FUNC.MSG$ = "Rascal Example #2"
  15.     DO SET.FUNCTION.MSG
  16.     DO GET.DISPLAY.TYPE
  17.     DO SET.TITLES
  18.     DO SET.FUNCTION.MSG
  19.     DO BORDERS
  20.     DO BUILD.DISPLAY.ARRAY
  21.     DO FINISH
  22. ENDPROC
  23.  
  24. PROCEDURE GET.DISPLAY.TYPE
  25.     LOCATE 5,1 : PRINT "Is this a color-graphics display? ";
  26.     DO GET.YES.OR.NO
  27.     IF ANSWER = YES
  28.     SEGVAL! = &HB800    'Color segment
  29.     ELSE
  30.     SEGVAL! = &HB000    'Monochrome segment
  31.     ENDIF
  32.     DEF SEG = SEGVAL!
  33.     PRINT
  34. ENDPROC
  35.  
  36. PROCEDURE BORDERS
  37.     'Display surrounding messages
  38.     LOCATE 11,1   : PRINT "Normal"
  39.     LOCATE 12,1   : PRINT "normal"
  40.     LOCATE 19,1   : PRINT "Normal"
  41.     LOCATE 20,1   : PRINT "blinking"
  42.     LOCATE 11,69  : PRINT "Bright"
  43.     LOCATE 12,69  : PRINT "normal"
  44.     LOCATE 19,69  : PRINT "Bright"
  45.     LOCATE 20,69  : PRINT "blinking"
  46.     FOR HEX.DIGIT% = 0 TO 15
  47.     LOCATE 6,HEX.DIGIT% * 3 + 17
  48.     PRINT HEX$(HEX.DIGIT%)
  49.     LOCATE HEX.DIGIT% + 8,11
  50.     PRINT HEX$(HEX.DIGIT%)
  51.     NEXT HEX.DIGIT%
  52.     LOCATE ,,0
  53. ENDPROC
  54.  
  55. PROCEDURE BUILD.DISPLAY.ARRAY
  56.     FOR ROW% = 0 TO 15
  57.         FOR COL% = 0 TO 15
  58.             POKE (ROW% + 7) * 160 + COL% * 6 + 31, ROW% * 16 + COL%
  59.             POKE (ROW% + 7) * 160 + COL% * 6 + 33, ROW% * 16 + COL%
  60.             POKE (ROW% + 7) * 160 + COL% * 6 + 35, ROW% * 16 + COL%
  61.             POKE (ROW% + 7) * 160 + COL% * 6 + 32, 65 ' 65 is char "A"
  62.         NEXT COL%
  63.     NEXT ROW%
  64. ENDPROC
  65.  
  66. PROCEDURE FINISH
  67.     LINE.24.MSG$ = "Press any key to return to DOS..."
  68.     DO SET.LINE.24
  69.     DO IN.GET.KEY
  70.     DO CLEAR.SCREEN
  71.     SYSTEM
  72. ENDPROC
  73.